Mario - CS50x 2023
请编写一个程序,按照下面的格式打印出指定高度的双半金字塔。
$ python mario.py
Height: 4
# #
## ##
### ###
#### ####
开始
登录 cs50.dev,点击你的终端窗口,并单独执行 cd
。你的终端提示符应该类似下面这样:
接下来执行
wget https://cdn.cs50.net/2022/fall/psets/6/sentimental-mario-more.zip
从而将 sentimental-mario-more.zip
下载到你的 codespace。
然后执行
unzip sentimental-mario-more.zip
以创建一个名为 sentimental-mario-more
的文件夹。你不再需要这个 ZIP 文件了,所以可以执行
rm sentimental-mario-more.zip
并在提示符后输入 'y',然后按回车键删除下载的 ZIP 文件。
现在输入
cd sentimental-mario-more
然后按回车键进入该目录。现在你的提示符应该像这样。
sentimental-mario-more/ $
单独执行 ls
,你应该看到 mario.py
。如果遇到问题,请重复以上步骤,检查哪里出错了!
规范
- 在
mario.py
文件中,编写一个程序,用井号 (#
) 重新创建这些半金字塔,就像你在问题集 1中所做的那样,不同之处在于这次你的程序应该用 Python 编写。 - 为了增加趣味性,首先用
get_int
提示用户输入半金字塔的高度,这是一个介于1
和8
之间的正整数(包括1
和8
)。(如上图所示,半金字塔的高度是4
,宽度也是4
,两个金字塔之间的间隔是2
个空格)。 - 如果用户输入的不是小于等于
8
的正整数,则需要重新提示。 - 然后,使用
print
和循环生成所需的半金字塔。 - 注意将金字塔左下角与终端窗口左边缘对齐。确保两个金字塔之间有两个空格,并且每行井号后没有多余的空格。
用法
你的程序应该像下面的例子一样运行。
$ python mario.py
Height: 4
# #
## ##
### ###
#### ####
测试
虽然可以使用 check50
检查代码,但我们更鼓励你先自行测试以下情况。
运行
python mario.py
并等待提示符。输入-1
并回车。程序应判定输入无效,并重新提示用户输入。运行
python mario.py
并等待提示符。输入0
并回车。程序应判定输入无效,并重新提示用户输入。运行
python mario.py
并等待提示符。输入1
并回车。程序应生成以下输出。请确保金字塔左下角与终端对齐,且每行末尾无多余空格。运行
python mario.py
并等待提示符。输入2
并回车。程序应生成以下输出。请确保金字塔左下角与终端对齐,且每行末尾无多余空格。运行
python mario.py
并等待提示符。输入8
并回车。程序应生成以下输出。请确保金字塔左下角与终端对齐,且每行末尾无多余空格。
# #
## ##
### ###
#### ####
##### #####
###### ######
####### #######
######## ########
运行
python mario.py
并等待提示符。输入9
并回车。程序应判定输入无效,并重新提示用户输入。然后输入2
并回车。程序应生成以下输出。请确保金字塔左下角与终端对齐,且每行末尾无多余空格。运行
python mario.py
并等待提示符。输入foo
并回车。程序应判定输入无效,并重新提示用户输入。运行
python mario.py
并等待提示符。直接回车。程序应判定输入无效,并重新提示用户输入。
执行 check50
命令以评估代码的正确性。不过,别忘了自己编译测试一下!
check50 cs50/problems/2023/x/sentimental/mario/more
执行 style50
命令以评估代码的风格。
如何提交
在终端中,执行以下命令以提交您的工作。
submit50 cs50/problems/2023/x/sentimental/mario/more